package Client;
import AnVeS.Controller.CAnhaengerSuche;
import AnVeS.Controller.CKundeAnlegen;
import AnVeS.Controller.CKundeSuchen;
import AnVeS.Controller.CKundenAuswahl;
import AnVeS.Controller.CStartDialog;
import AnVeS.Controller.CStatusAendern;
import AnVeS.Controller.CTarifWaehlen;
import AnVeS.Controller.CVerfuegbareAnhaenger;
import AnVeS.Controller.CVertragAuswahl;
import AnVeS.Controller.CVertragSuche;
import AnVeS.Model.MQueue;

/**
 * Klasse zum Starten der Client-Anwendung. Hier werden die Controller mit den 
 * entsprechenden Views initialisiert und die Threads zur Client-Server Kommunikation gespeichert
 * @author Alexander Theis
 * @version 1.0.2 vom 06.08.2014
 */
public class Start {
	public static void main(String[] args) {		
		CStartDialog.getInstance();
		
		CAnhaengerSuche.getInstance();
		CVerfuegbareAnhaenger.getInstance();
		CTarifWaehlen.getInstance();
		CKundeSuchen.getInstanz();
		CKundenAuswahl.getInstance();
		CKundeAnlegen.getInstance();
		CVertragSuche.getInstance();
		CVertragAuswahl.getInstance();
		CStatusAendern.getInstance();
		
		// ThreadClient initialisieren und starten
		ThreadClient thread = new ThreadClient(MQueue.getInstance());
		thread.start();

		// ThreadClientServer initialisieren und starten
		ThreadClientServer threadServer = new ThreadClientServer(new PayloadClientServer(), MQueue.getInstance());
		threadServer.start();
	}
}